perm filename DFTP.MRC[UP,DOC]2 blob sn#244210 filedate 1976-10-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00017 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		*** Info on the soon-to-come TBM Datacomputer !! ***
C00005 00003
C00007 00004
C00010 00005	
C00011 00006
C00012 00007
C00017 00008
C00021 00009
C00026 00010
C00027 00011
C00029 00012
C00031 00013
C00033 00014
C00035 00015
C00038 00016
C00041 00017
C00042 ENDMK
C⊗;
	*** Info on the soon-to-come TBM Datacomputer !! ***





     Introductory buzzwah handwave statement.


     The new version of the  datacomputer  (which  new  DFTP

uses)  stores  all  data  on the TBM, CCA's new mass memory.

The smallest unit of space that can be allocated on the  TBM

is  one  megabit.   Thus  if  every  user file stored on the

datacomputer occupied a separate datacomputer  node  (as  is

the  case with old DFTP), each such file would use a minimum

of a megabit on  the  TBM.   This  is  grossly  inefficient,

considering  the  size  of  most  files stored via DFTP.  In

order to be more efficient, new DFTP stores a number of user

files  in  one datacomputer node.  Each subdirectory has one

datacomputer node (the '<FILES>' node)  in  which  the  user

files under that subdirectory are stored.


     The result of this many to one mapping is a distinction

between  operations at the datacomputer node level (at which

all took place with old DFTP) and those (below  that  level)

inside   a   datacomputer   node  (the  <FILES>  node  of  a

subdirectory).  Some commands operate only at the node level

(ALLOCATE,  ATTACH,  CHANGE, CONNECT, CREATE, EXPUNGE, LIST,

REMOVE), and some only at the file level (DELETE, DIRECTORY,

GET,  PUT,  UNDELETE).  Those that operate at the node level

take as arguments a path in the form accepted  by  old  DFTP

(see the January 1976 user's manual), with the addition that

a trailing  "**"  indicates  that  all  inferior  nodes  are

desired.   Those  that  operate at the file level accept (an


                                                    Page   2



optional  path  followed  by)  a  user  file   specification

(<file>.<extension>;<version>  or some subset thereof).  The

user need not (in fact cannot) reference  the  <FILES>  node

directly.   All  user file specifications are applied to the

contents of the <FILES> beneath the  appropriate  node  (the

last  node  of  the  path  if a path was specified, else the

CONNECTed node).


     Zum Beispiel...





*CONNECT FORTRAN
 [Old Node]
*STORE FORPAC.F4
 [OK]
*DIRECTORY *.*;*
**TERSE
 FORDNT.F4;1 2313(7)
 FODPAC.F4;1 4342(7)
*DIRECTORY *.*;*
**VERBOSE
 FORDNT.F4;1  
  11-JUL-76 03:40:56 06-OCT-76 19:44:10 2313(7)
 FODPAC.F4;1  
  11-JUL-76 04:52:27 06-OCT-76 19:49:50 4342(7)
*LIST <<**
**TERSE
    CCA
        WRB
            <FILES>
            FORTRAN
                <FILES>
*LIST <<**
**VERBOSE
    CCA
        WRB
            ] MX-U=9.69 CHRG=3.00
            ] IN-N=3 IN-F=2
            ] CREA=760630054630
            <FILES>
                ] B-AL=1.00 USED=0.01 O-AL=1.00 RECS=1
                ] C-AL=0.01
                ] WRIT=760917233828 READ=761005232817

                                                    Page   3



                ] DUMP=760630054841 D-ID=760719215258
                ] CHRG=3.00 VERS=5 MODN=3
                ] DVID=TBM VOID=8
            FORTRAN
                ] MX-U=1000000.00 CHRG=0.00
                ] IN-N=1 IN-F=1
                ] CREA=761006234215
                <FILES>
                    ] B-AL=1.00 USED=0.05 O-AL=1.00 RECS=2
                    ] C-AL=0.01
                    ] WRIT=761006235003 READ=761006235
                    ] DUMP=000000000000 D-ID=000000000000
                    ] CHRG=0.00 VERS=0 MODN=0
                    ] DVID=TBM VOID=8
*DIRECTORY <<*.*
**TERSE
 (SXCF: STAGING FILE DFTP.CCA.WRB."<FILES">)
 WALDO.;1 23(7)
*RETRIEVE <<WALDO
 [OK]



     There are a number of new commands.   LIST  and  REMOVE

are  the  node  level  equivalents  of DIRECTORY and DELETE,

which operate only at the  file  level.   DELETE  no  longer

eliminates  a  file  on  the  spot,  but  rather marks it as

deleted.  Files that are deleted can be seen via the VERBOSE

option  of  the  DIRECTORY  command.   Deleted  files can be

undeleted by using the  you  guessed  it  UNDELETE  command.

Version  numbers  are maintained so that files with the same

name and extension can be  referenced  unambiguously  (these

numbers are unrelated to the TENEX version numbers files may

have).  EXPUNGE makes a fresh copy of the <FILES> under  the

node it takes as its argument, flushing files that have been

marked as deleted.






     










                   Computer Corporation of America




















           Datacomputer File Transfer Program User's Guide










                             January 1976





     The datacomputer is a shared  large-scale  data  storage  utility
offering  data storage and data management services to other computers
on the Arpanet.  The system is intended to be used  as  a  centralized
facility  for  archiving  data,  for  sharing  data  among the various
network hosts, and for providing inexpensive on-line storage for sites
needing  to  supplement  their  local capability.  The datacomputer is
implemented on dedicated hardware, and comprises a separate  computing
system  specialized for data management.  Logically, the system can be
viewed as a closed box shared  by  multiple  external  processors  and
accessed in a standard notation called datalanguage.

     The Datacomputer File Transfer Program (DFTP) is  a  user-invoked
program  that  stores  and  retrieves local files on the datacomputer.
DFTP translates simple user  commands  into  datalanguage,  sends  the
datalanguage  and data to the datacomputer, processes the messages and
data returned from the datacomputer, and  notifies  the  user  of  the
results.   DFTP  also  manages  local  file input/output and secondary
network connections to and from the datacomputer.


                            The Directory
                            ←←← ←←←←←←←←←

     The DFTP datacomputer  directory  is  a  tree,  with  site  nodes
anchored  to a common root node, user nodes subordinate to site nodes,
and files beneath user nodes.  A user's  name  space  may  be  further
divided into subdirectories of arbitrary depth.  Pictorially,
                       <root>
                       /    \
                   site      site    ...
                  /    \
              user      user    ...
             /    \
         file      subdirectory    ...
                  /            \
              file              subdirectory    ...
                               /            \
                           file              file    ...

     Any node in the directory can be accessed via a generalized means
for  specifying  paths  through  the  directory  tree.   The mechanism
consists of a context, or anchoring point, for name references, and  a
pathname, which is the sequence of node names, starting at the anchor,
defining the desired branch of the directory tree.

     There are three contexts: the top context,  the  attach  context,
and  the  connect  context (syntactically indicated by three, two, and
one left angle brackets, respectively).  The top context (<<<) anchors
the  pathname  at  the root node and is used primarily for referencing
other site and user nodes.  The attach context (<<) is a path, set  by
the  ATTACH  command  (and by DFTP automatically at the beginning of a
session), and usually ends with a user node.  It is used mainly  as  a
reference  point  for  name space division beneath the user node.  The
connect context (<) is a  path  (initially  the  same  as  the  attach

DFTP User's Guide                                             Page   2



context), set by the CONNECT command, and conventionally terminates in
a subdirectory.  Contexts need not always be specified  --  each  DFTP
command  has  a  default context (which is the connect context for all
commands except ATTACH and CONNECT, which  have  as  their  respective
defaults the top context and the attach context).

     The pathname part of the directory path consists of a sequence of
node  names  (consecutive levels in the tree) separated by right angle
brackets.  A password may be necessary in acquiring access  privileges
at  a  particular  node,  in which case the node name is followed by a
colon and the password.

     Some examples of directory paths:
          <<<CCA>HACKER:>WALDO
Starting at the top context, the pathname references the  subdirectory
WALDO  under user HACKER at site CCA (with a password supplied to gain
access to HACKER).
          <<MACROS>COMMON>SYSMAC.MAC
Starting at  the  attached  context  (presumably  a  user  node),  the
pathname  references the file SYSMAC.MAC under the COMMON subdirectory
of the MACROS subdirectory.


                               Commands
                               ←←←←←←←←

     DFTP command and argument input is similar to TENEX, with command
recognition and TENEX editing controls.  In particular,
          <control-A> deletes a character,
          <control-R> retypes the line,
          <control-X> and <rubout> delete the line,
          <escape> and <space> are separators, and
          <carriage return>, <line feed> and <eol> are terminators.

     The DFTP commands and their arguments are:
          ATTACH [path]
          CONNECT (path)
          COPY [source path] [destination path]
          DELETE [path]
          DIRECTORY (path)
               CREATION
               TERSE
               VERBOSE
          GET [path] (local synonym)
               RETRIEVE is equivalent to GET.
          PUT [path] (remote synonym)
               STORE is equivalent to PUT.
          SHOW-DATALANGUAGE
          NO-DATALANGUAGE
          TIME-TRANSFERS
          UNTIME-TRANSFERS
          VERIFY [path] (remote synonym)
          QUIT
Items in square brackets are required arguments; items in  parentheses

DFTP User's Guide                                             Page   3



are optional ones.

     The  ATTACH  command  sets  the  attach  context  and   initiates
datacomputer accounting functions.

     The CONNECT command sets the connect context.  The default (if no
path is input) is the attach context.

     Copies of DFTP files are made with the COPY  command,  which  can
also be used to move and rename files (in conjunction with DELETE).

     Subdirectories and files are deleted  with  the  DELETE  command.
The  path  argument  of  the  command  may  have  *'s  in the place of
subdirectories, files, and/or  extensions,  which  indicate  that  all
objects  at  that  level are to be deleted.  If the path is terminated
with an escape, all objects below the path will also be deleted.

     The DIRECTORY command  lists  the  part  of  the  DFTP  directory
selected  by  its  path  argument.   Escape  and * operate in the same
manner as in the DELETE command.  The default (if no path is input) is
the  current  context and all objects beneath it.  Subcommands include
TERSE, VERBOSE, and CREATION.  TERSE lists names only.  VERBOSE  lists
all   directory   information   associated   with  a  node,  including
datacomputer  creation  date  (in  Greenwich  mean  time)  and   space
allocated  (in  TENEX pages).  CREATION gives the dates and times that
files were originally created on the local computer.

     The GET and PUT commands retrieve and store local disk  files  on
the  datacomputer.  Files of any type (e.g., text, binary image) up to
500 TENEX pages (2000 TOPS-10 blocks) in size can  be  stored.   Files
may  be  stored  and  retrieved  with destination names different from
their source names, in which  case  the  synonym  option  is  used  by
completing  the  first  argument to the GET or PUT with an escape or a
space.  The commands then operate as
          GET [datacomputer file] as [local file]
and
          PUT [local file] as [datacomputer file].

     The SHOW-DATALANGUAGE and NO-DATALANGUAGE  commands  respectively
allow  and  inhibit  the output to the user's terminal of the messages
sent to and received from the datacomputer.

     Data transfer rates are calculated and given to the user when the
TIME-TRANSFERS command has been invoked.  The calculations are avoided
with the UNTIME-TRANSFERS command.

     The VERIFY command compares a local file with a datacomputer file
(word by word) and reports differences.

     QUIT exits gracefully from DFTP, closing the datacomputer network
connections.

DFTP User's Guide                                             Page   4



     There are three types of  messages  that  DFTP  gives  the  user.
Comments  surrounded  by  square  brackets are primarily informational
messages, and are never errors.  Parentheses enclose non-fatal errors,
such  as "(DION: NAME NOT FOUND IN DIRECTORY)", which is the result of
an attempt to GET a nonexistent file.   This  message  comes  directly
from  the datacomputer, indicated by the name and colon at the head of
the message.  Fatal error messages are surrounded by  question  marks,
and of course never occur.





                    DFTP Command Summary
                    ←←←← ←←←←←←← ←←←←←←←










                           Paths


<path> ::= <context>
    | <context> <pathname>
    | <pathname>
<context> ::= <                         (connect context)
    | <<                                (attach context)
    | <<<                               (top context)
<pathname> ::= <node>
    | <node> . <node>
    | <node> > <pathname>
<node> ::= <name>
    | <name> : <password>
    | *




















Notes:
     Any printing ASCII characters except <, >, ., :, *,  ?,
          ', and " may be used in a <name>.
     Any printing ASCII characters (plus space) except >, .,
          ', and " may be used in a <password>.

DFTP Command Summary                                Page   2



                          Commands



ATTACH [path]

CONNECT [path] (1)

COPY [source path] [destination path]

DELETE [path] (2)

DIRECTORY [path] (2) (3)
     CREATION
     TERSE
     VERBOSE

GET (RETRIEVE) [path] [synonym (local file name)] (4)

PUT (STORE) [path] [synonym (path)] (4)

QUIT

SHOW-DATALANGUAGE

NO-DATALANGUAGE

TIME-TRANSFERS

UNTIME-TRANSFERS

VERIFY [path] [synonym (path)] (4)






Notes:
     Input arguments are indicated by square brackets.
     The connect context is  the  default  context  for  all
          commands  except ATTACH and CONNECT, which have as
          their respective defaults the top context and  the
          attach context.
     (1) The default (if no path is input) is  the  attached
          node.
     (2) If the path is terminated by an escape or a  space,
          it includes all inferior nodes.
     (3) The default (if no path is input) is the  connected
          node  and  all  its  inferior  nodes.  The default
          subcommand is TERSE.
     (4) The second argument is optional.





			A Sample DFTP Dialog





 [Attaching]

;List the ATTACH node.
; (user HACKER under site CCA)
*DIRECTORY <<
**TERSE
    CCA
        HACKER

;List the CONNECT node.
; (same as the ATTACH node (initially set as such))
*DIRECTORY <
**TERSE
    CCA
        HACKER

;List all nodes under the CONNECT node.
; (the argument to the DIRECTORY command is a space)
; (files are indicated by "[F]")
*DIRECTORY [Nodes]
**TERSE
    CCA
        HACKER
            LIBRARY
                DFTP
                    MAC 	[F]
                READ
                    MAC 	[F]
                    SAV 	[F]
            WALDO 	[F]

;Store a file.
; (WALDO already exists (the old copy will be deleted when confirmed))
*PUT WALDO
 [Old File][Confirm]


;Connect to a subdirectory.
; (LIBRARY already exists)
*CONNECT LIBRARY
 [Old Node]

;List the CONNECT node.
*DIRECTORY <
**TERSE
    CCA
        HACKER
            LIBRARY

;List all files with MAC extensions under the CONNECT node.
; (*'s may be used at any level)
*DIRECTORY *.MAC
**TERSE
    CCA
        HACKER
            LIBRARY
                DFTP
                    MAC 	[F]
                READ
                    MAC 	[F]

*TIME-TRANSFERS

;Retrieve a file.
; ("[OK]" indicates that data transfer is commencing)
*GET DFTP.MAC
 [OK]
 (63691 Baud (636912 bits in 10 seconds))

*UNTIME-TRANSFERS

;Compare a local file with the datacomputer version.
*VERIFY DFTP.MAC
 [OK]


;Connect to a subdirectory.
; (SAVE is a new node)
; (the default context of the CONNECT command is the ATTACH node)
*CONNECT SAVE
 [New Node][Confirm]

;List the CONNECT node.
*DIRECTORY <
**TERSE
    CCA
        HACKER
            SAVE

;Copy an existing datacomputer file to a new one.
; (the old file is SAV.DFTP under subdirectory CCA of host COMMON)
; (the new file is DFTP.SAV under the CONNECT node)
*COPY <<<COMMON>CCA>SAV.DFTP [To] DFTP.SAV
 [New File]

;Copy an existing datacomputer file to a new one.
; (the old file is READ.SAV under the LIBRARY subdirectory)
; (the new file is READ.SAV under the CONNECT node)
; (the user's allocation will be exceeded by the COPY)
*COPY <<LIBRARY>READ.SAV [To] READ.SAV
 [New File]
 (ANCLIM: NEW ALLOC WOULD EXCEED SPACE LIMITS)

;Retrieve a file.
; (store READ.SAV temporarily on local disk as TMP.TMP)
; (a space after READ.SAV invokes the synonym feature)
*GET <<LIBRARY>READ.SAV [As] TMP.TMP
 [OK]

;Delete a file.
; (delete READ.SAV to make room for the new copy)
*DELETE <<LIBRARY>READ.SAV [Confirm]

;Store a file.
; (restore the file temporarily held on local disk)
; (a space as the file name invokes TENEX name recognition (">" prompt))
*PUT >TMP.TMP;1 [Old version]  [As] READ.SAV
 [New File]


;List all nodes under the CONNECT node.
*DIRECTORY [Nodes]
**TERSE
    CCA
        HACKER
            SAVE
                DFTP
                    SAV 	[F]
                READ
                    SAV 	[F]

;List all nodes under the CONNECT node.
; (list all information (other than CREATION) (in datacompuer format))
*DIRECTORY [Nodes]
**VERBOSE
    CCA
        HACKER
            SAVE
                ] M-PG=54253473 USED=40
                ] IN-N=4 IN-F=2
                ] CREA=760218200600
                DFTP
                    ] M-PG=54253473 USED=30
                    ] IN-N=1 IN-F=1
                    ] CREA=760218200638
                    SAV
                        ] B-AL=21 USED=20 O-AL=21 RECS=10240
			] CREA=760218200639 WRIT=760218200643 READ=0
			] DUMP=000000000000 D-ID=000000000000
		READ
		    ] M-PG=54253473 USED=10
		    ] IN-N=1 IN-F=1
		    ] CREA=760218200928
		    SAV
			] B-AL=2 USED=1 O-AL=2 RECS=425
			] CREA=760218200929 WRIT=760218200933 READ=0
			] DUMP=000000000000 D-ID=000000000000

;List all nodes under the CONNECT node.
; (list local creation dates (preserved across DFTP transfers))
*DIRECTORY [Nodes]
**CREATION
    CCA
	HACKER
	    SAVE
		DFTP
		    SAV 17-JAN-76 23:25:48
		READ
		    SAV 10-JUN-74 13:53:55


;Connect to the ATTACH node.
; (the argument to the CONNECT command is a space)
*CONNECT [Attached Node]
 [Old Node]

:List all nodes under the CONNECT node.
*DIRECTORY [Nodes]
**TERSE
    CCA
	HACKER
	    LIBRARY
		DFTP
		    MAC		[F]
		READ
		    MAC		[F]
	    WALDO	[F]
	    SAVE
		DFTP
		    SAV		[F]
		READ
		    SAV		[F]

*QUIT